package com.example.projecth.medicalcheckup;

import com.example.projecth.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class BMI_Fragment extends Fragment {

	// 위젯변수
	private EditText name;
	private EditText weight;
	private EditText height;
	private Button start;
	private TextView result;
	private ImageView image;

	// 사용할 이미지 변수
	private Bitmap question_Image;
	private Bitmap lean_Image;
	private Bitmap norm_Image;
	private Bitmap fat_Image;

	// 연산식에 사용되는 변수
	private double bmi;
	private double wei;
	private double hei;
	private double standardWeight;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// xml파일 불러오기
		View view = inflater.inflate(R.layout.mc_bmi, container, false);

		// 각 위젯을 위젯변수에 반환
		name = (EditText) view.findViewById(R.id.name_input);
		weight = (EditText) view.findViewById(R.id.weight_input);
		height = (EditText) view.findViewById(R.id.height_input);

		start = (Button) view.findViewById(R.id.bmi_start);
		result = (TextView) view.findViewById(R.id.bmi_result);
		image = (ImageView) view.findViewById(R.id.bmi_image);

		// 버튼에 이벤트 연결
		start.setOnClickListener(listener);

		// 이미지 비트맵으로 바꿔서 Create 할때 각 이미지 변수에 저장(재사용을 위해)
		Resources resources = getResources();
		BitmapDrawable drawable = (BitmapDrawable) resources
				.getDrawable(R.drawable.question);
		Bitmap original = drawable.getBitmap();
		question_Image = Bitmap.createScaledBitmap(original, 70, 120, true);

		drawable = (BitmapDrawable) resources.getDrawable(R.drawable.lean);
		original = drawable.getBitmap();
		lean_Image = Bitmap.createScaledBitmap(original, 70, 120, true);

		drawable = (BitmapDrawable) resources.getDrawable(R.drawable.norm);
		original = drawable.getBitmap();
		norm_Image = Bitmap.createScaledBitmap(original, 70, 120, true);

		drawable = (BitmapDrawable) resources.getDrawable(R.drawable.fat);
		original = drawable.getBitmap();
		fat_Image = Bitmap.createScaledBitmap(original, 70, 120, true);

		// 이미지뷰에 초기 이미지 설정
		image.setImageBitmap(question_Image);

		return view;
	}

	@Override
	public void onResume() {
		MainActivity.mp[0].start();
		super.onResume();
	}

	@Override
	public void onPause() {
		// Pause 될때 EditText값 초기화
		name.setText("");
		weight.setText("");
		height.setText("");
		// 배경음악멈추기
		MainActivity.mp[0].pause();
		super.onPause();
	}

	// 익명 클래스의 이벤트 listener 선언
	private OnClickListener listener = new OnClickListener() {

		@Override
		public void onClick(View v) {
			// 각 EditText의 값이 하나라도 ""이면
			if (name.getText().toString().equals("")
					|| weight.getText().toString().equals("")
					|| height.getText().toString().equals("")) {
				// AlertDialog
				unEnter();
			} else {
				// BMI 검사 실행
				bmi_Test();
			}

		}

	};

	private void unEnter() {
		// AlertDialog 빌더에 연결
		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

		// AlertDialog 설정
		builder.setTitle("경고").setMessage("입력창에 정보를 모두 입력 해주세요.")
				.setNegativeButton("확인", null).show();

	}

	private void bmi_Test() {

		// BMI 연산식 계산
		wei = Double.valueOf(weight.getText().toString());
		hei = Math.pow(Double.valueOf(height.getText().toString()) / 100, 2);
		bmi = wei / hei;

		// 표준체중 연산
		standardWeight = hei * 21.5;

		// bmi지수가 18.5 미만일때
		if (bmi < 18.5) {
			result.setText(String
					.format("[%s 님의 비만도는 %3.1f 입니다.]\r\n[저체중 입니다.]\r\n[표준 체중은 %3.1f 입니다.]",
							name.getText(), bmi, standardWeight));
			// 이미지 불러오기
			image.setImageBitmap(lean_Image);

			// 배경음 멈췄다가 효과음 넣고, 다시 배경음 실행
			// if (MainActivity.mp[0].isPlaying()) {
			// MainActivity.mp[0].pause();
			// MainActivity.mp[4].start();
			// if (MainActivity.mp[4].isPlaying()) {
			// try {
			// Thread.sleep(5000);
			// MainActivity.mp[4].stop();
			// MainActivity.mp[4].release();
			// MainActivity.mp[0].start();
			// } catch (Exception ex) {}
			// }

			// bmi지수가 18.5 ~ 22.9
		} else if (bmi >= 18.5 && bmi < 23) {
			result.setText(String
					.format("[%s 님의 비만도는 %3.1f 입니다.]\r\n[정상체중 입니다.]\r\n[표준 체중은 %3.1f 입니다.] ",
							name.getText(), bmi, standardWeight));
			// 이미지 불러오기
			image.setImageBitmap(norm_Image);
			// 배경음 멈췄다가 효과음 넣고, 다시 배경음 실행
//			if (MainActivity.mp[0].isPlaying()) {
//				MainActivity.mp[0].pause();
//				MainActivity.mp[3].start();
//				if (MainActivity.mp[3].isPlaying()) {
//					try {
//						Thread.sleep(4000);
//						MainActivity.mp[3].stop();
//						MainActivity.mp[3].release();
//						MainActivity.mp[0].start();
//					} catch (Exception ex) {
//					}
//				}

				// bmi지수가 23 ~ 24.9
			} else if (bmi >= 23 && bmi < 25) {
				result.setText(String
						.format("[%s 님의 비만도는 %3.1f 입니다.]\r\n[경도비만 입니다.]\r\n[표준 체중은 %3.1f 입니다.] ",
								name.getText(), bmi, standardWeight));
				// 이미지 불러오기
				image.setImageBitmap(fat_Image);
				// 배경음 멈췄다가 효과음 넣고, 다시 배경음 실행
//				if (MainActivity.mp[0].isPlaying()) {
//					MainActivity.mp[0].pause();
//					MainActivity.mp[4].start();
//					if (MainActivity.mp[4].isPlaying()) {
//						try {
//							Thread.sleep(4000);
//							MainActivity.mp[4].stop();
//							MainActivity.mp[4].release();
//							MainActivity.mp[0].start();
//						} catch (Exception ex) {
//						}
//					}

					// bmi지수가 25 ~ 29.9
				} else if (bmi >= 25 && bmi < 30) {
					result.setText(String
							.format("[%s 님의 비만도는 %3.1f 입니다.]\r\n[비만 입니다.]\r\n[표준 체중은 %3.1f 입니다.] ",
									name.getText(), bmi, standardWeight));
					// 이미지 불러오기
					image.setImageBitmap(fat_Image);
					// 배경음 멈췄다가 효과음 넣고, 다시 배경음 실행
//					if (MainActivity.mp[0].isPlaying()) {
//						MainActivity.mp[0].pause();
//						MainActivity.mp[4].start();
//						if (MainActivity.mp[4].isPlaying()) {
//							try {
//								Thread.sleep(4000);
//								MainActivity.mp[4].stop();
//								MainActivity.mp[4].release();
//								MainActivity.mp[0].start();
//							} catch (Exception ex) {
//							}
//						}

						// bmi지수가 30 이상일때
					} else if (bmi > 30) {
						result.setText(String
								.format("[%s 님의 비만도는 %3.1f 입니다.]\r\n[고도비만 입니다.]\r\n[표준 체중은 %3.1f 입니다.] ",
										name.getText(), bmi, standardWeight));
						// 이미지 불러오기
						image.setImageBitmap(fat_Image);
						// 배경음 멈췄다가 효과음 넣고, 다시 배경음 실행
//						if (MainActivity.mp[0].isPlaying()) {
//							MainActivity.mp[0].pause();
//							MainActivity.mp[4].start();
//							if (MainActivity.mp[4].isPlaying()) {
//								try {
//									Thread.sleep(4000);
//									MainActivity.mp[4].stop();
//									MainActivity.mp[4].release();
//									MainActivity.mp[0].start();
//								} catch (Exception ex) {
//								}
							}
						}
					}
				

			

